/**
 * Created by Administrator on 2017-07-06.
 */
// import _ from 'lodash'
export default {
    install (Vue, options) {
        //
        // Vue.prototype.addGroup = (index, tableHeadList, groupHeadList) => {
        // 	let groupItem = {}
        // 	let outIndex = 0
        // 	let inIndex = 0
        // 	tableHeadList.forEach((itemOut, indexOut) => {
        // 		itemOut.list.forEach((item, indexIn) => {
        // 			if (item.index === index) {
        // 				groupItem = item
        // 				groupHeadList.push(item)
        // 				outIndex = indexOut
        // 				inIndex = indexIn
        // 			}
        // 		})
        // 	})
        // 	tableHeadList[outIndex].list.splice(inIndex, 1)
        // } // 添加一个新分组的方法
        //
        // Vue.prototype.pushGroupInEnd = (index, groupHeadList) => {
        // 	let groupItem = {}
        // 	let groupIndex = 0
        // 	groupHeadList.forEach((item, indexIn) => {
        // 		if (item.index === index) {
        // 			groupItem = item
        // 			groupIndex = indexIn
        // 		}
        // 	})
        // 	groupHeadList.splice(groupIndex, 1)
        // 	groupHeadList.push(groupItem)
        // } // 分组移动到最后的方法
        //
        // Vue.prototype.moveArrObj = (arr, index, tindex) => {
        // 	if (index > tindex) {
        // 		arr.splice(tindex, 0, arr[index])
        // 		arr.splice(index + 1, 1)
        // 	}
        // 	else {
        // 		arr.splice(tindex + 1, 0, arr[index])
        // 		arr.splice(index, 1)
        // 	}
        // } // 数组中移动元素的方法
        //
        // Vue.prototype.getGroupPosition = (index, groupHeadList) => {
        // 	let groupIndex = 0
        // 	groupHeadList.forEach((item, indexIn) => {
        // 		if (item.index === index) {
        // 			groupIndex = indexIn
        // 		}
        // 	})
        // 	return groupIndex
        // } // 获得分组中index对应的位置
        //
        // Vue.prototype.getGroupPosCompare = (start, end, groupHeadList) => {
        // 	let startIndex = 0
        // 	let endIndex = 0
        // 	groupHeadList.forEach((item, index) => {
        // 		if (item.index === start) {
        // 			startIndex = index
        // 		}
        // 		if (item.index === end) {
        // 			endIndex = index
        // 		}
        // 	})
        // 	if (startIndex < endIndex) {
        // 		return true
        // 	}
        // 	if (startIndex > endIndex) {
        // 		return false
        // 	}
        // } // 用于判断数组中的前后关系
        //
        // // json数组转显示数组的函数
        // Vue.prototype.jsonToArrByGroup = (json, pos) => {
        // 	let array = []
        // 	Vue.prototype.jsonToArrByGroupInSaid(json, array, pos)
        // 	return array
        // } // 将json对象转换成数组的方法的包装器
        //
        // Vue.prototype.jsonToArrByGroupInSaid = (json, arrayWrapper, pos) => {
        // 	json.forEach((item, index) => {
        // 		if (item.pos === pos) {
        // 			item.show = !item.show
        // 		}
        // 		let fakeItem = _.cloneDeep(item)
        // 		fakeItem.list = []
        // 		if (item.pos === undefined) {
        // 			arrayWrapper.push(fakeItem)
        // 		}
        // 		if (item.show && item.list) {
        // 			Vue.prototype.jsonToArrByGroupInSaid(item.list, arrayWrapper, pos)
        // 		}
        // 	})
        // } // 将json对象转换成数组的方法
        //
        // // json数组转行列合并数组的函数
        // Vue.prototype.jsonToSpanByGroup = (json, pos) => {
        // 	let array = []
        // 	Vue.prototype.jsonToSpanByGroupInSaid(json, array, pos, 1)
        // 	let arrList = Vue.prototype.spanToListByIndex(array)
        // 	let arrSpanList = Vue.prototype.listToConcat(arrList)
        // 	return Vue.prototype.listToConcatAdd(arrSpanList)
        // } // 将json对象转换成合并行的方法的包装器
        //
        // Vue.prototype.jsonToSpanByGroupInSaid = (json, conditionList, pos, index) => {
        // 	let spanConditionList = []
        // 	json.forEach((item) => {
        // 		if (item.conditionNum) {
        // 			spanConditionList.push({
        // 				num: item.conditionNum,
        // 				index: index
        // 			})
        // 		}
        // 		if (item.show && item.list) {
        // 			Vue.prototype.jsonToSpanByGroupInSaid(item.list, conditionList, pos, index + 1)
        // 		}
        // 	})
        // 	if (spanConditionList.length > 0) {
        // 		conditionList.push(spanConditionList)
        // 	}
        // } // 将json对象转换成合并行的方法
        //
        // Vue.prototype.spanToListByIndex = (arr) => {
        // 	let index = 1
        // 	arr.forEach(item => {
        // 		item.forEach(itemIn => {
        // 			if (itemIn.index > index) {
        // 				index = itemIn.index
        // 			}
        // 		})
        // 	})
        // 	let i = 1
        // 	let spanArr = []
        // 	while (i <= index) {
        // 		let spanArrIn = []
        // 		arr.forEach(item => {
        // 			if (item[0].index === i) {
        // 				spanArrIn.push(item)
        // 			}
        // 		})
        // 		spanArr.push(spanArrIn)
        // 		i++
        // 	}
        // 	return spanArr
        // }// 将合并行进行分组的方法
        //
        // Vue.prototype.listToConcat = (arr) => {
        // 	let arrList = []
        // 	arr.forEach(item => {
        // 		let arrListIn = []
        // 		item.forEach(itemIn => {
        // 			itemIn.forEach(itemInIn => {
        // 				arrListIn.push(itemInIn.num)
        // 			})
        // 		})
        // 		arrList.push(arrListIn)
        // 	})
        // 	return arrList
        // }// 将合并行分组进行连接并转化成数字数组的方法
        //
        // Vue.prototype.listToConcatAdd = (arr) => {
        // 	let arrList = []
        // 	arr.forEach(item => {
        // 		let arrListIn = []
        // 		item.forEach((itemIn, index) => {
        // 			let numAdd = {
        // 				num: itemIn,
        // 				spanLine: itemIn
        // 			}
        // 			if (index > 0) {
        // 				numAdd.spanLine = numAdd.spanLine + arrListIn[index - 1].spanLine
        // 			}
        // 			arrListIn.push(numAdd)
        // 		})
        // 		arrList.push(arrListIn)
        // 	})
        // 	arrList.forEach(item => {
        // 		item.forEach(itemIn => {
        // 			itemIn.spanLine = itemIn.spanLine - itemIn.num + 1
        // 		})
        // 	})
        // 	return arrList
        // }// 将合并行分组进行连接并转化成累加数字数组的方法
        //
        // // 原始数据加分组数组转json数组的函数
        // Vue.prototype.getGroupDataList = (originDataList, groupHeadList) => {
        // 	return Vue.prototype.getGroupDataListInSaid(originDataList, groupHeadList, 1, {index: 1})
        // } // 将原始数据和分组数组转换成分组数据的包装器
        //
        // Vue.prototype.getGroupDataListInSaid = (originDataList, groupHeadList, lvl, pos) => {
        // 	if (groupHeadList.length === 0) {
        // 		return originDataList
        // 	}
        // 	let groupedItems = _(originDataList)
        // 		.groupBy(item => item[groupHeadList[0].prop])
        // 		.map((items, groupName) => {
        // 			return {
        // 				conditionNum: items.length,
        // 				list: groupHeadList.length === 1 ? Vue.prototype.itemsAddLvl(items, lvl + 1) : Vue.prototype.getGroupDataListInSaid(items, _.drop(groupHeadList), lvl + 1, pos)
        // 			}
        // 		})
        // 		.value() // 不反转数组排序
        // 		// .reverse() // 为了反转数组排序
        // 		// .value()
        // 	groupedItems.forEach((item, index) => {
        // 		item.pos = pos.index
        // 		pos.index = pos.index + 1
        // 		item.lvl = lvl
        // 		item.info = true
        // 		item.show = true
        // 	})
        // 	return groupedItems
        // } // 将原始数据和分组数组转换成分组数据
        //
        // Vue.prototype.itemsAddLvl = (items, lvl) => {
        // 	items.forEach(item => {
        // 		item.lvl = lvl
        // 	})
        // 	return items
        // } // 为数组的每一项添加lvl属性
    }
}
